package com.example.linkedlist;

public class Demo {
    public static void main(String[] args) {
        SingleLinkedList singleLinkedList = new SingleLinkedList();
        Anime anime1 = new Anime("Re0:从零开始的异世界生活", 1);
        Anime anime2 = new Anime("辉夜大小姐", 2);
        Anime anime3 = new Anime("星游记", 3);
        Anime anime4 = new Anime("镇魂街", 4);
        singleLinkedList.addNode(anime1);
        singleLinkedList.addNode(anime2);
        singleLinkedList.addNode(anime3);
        singleLinkedList.addNode(anime4);
        singleLinkedList.showNodes();
//        System.out.println("反转后链表");
//        singleLinkedList.reverse(singleLinkedList.getHeaderNode());
//        singleLinkedList.showNodes();
        singleLinkedList.reversePrint(singleLinkedList.getHeaderNode());
    }

    /**
     * 反转链表（遍历节点，将节点查询新链表头部，结束时使旧链表头部.next 指向新链表头.next
     * 1. 创建一个新链表（带头结点）
     * 2. 遍历旧链表，创建 tempNode1(当前节点） 保存旧链表头节点的下一个数据
     * 3. 创建 tempNode2 ,保存temp1.next后的节点位置
     * 4. 将新链表的下一个节点，指向 tempNode1的下一个节点
     * 5. 将 tempNode1的下一个节点，指向 新链表头结点的下一个位置（将tempNode1插入新链表）
     * 6. 将 新链表的头节点，指向tempNode1
     */
}
